<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    console.log("0||1="+(0||1));//0||1=1
    console.log("1||2="+(1||2));//1||2=1
    console.log("0 && 1="+(0 && 1));//0 && 1=0
    console.log("1 && 2="+(1 && 2));//1 && 2=2
//     在JavaScript中，||和&&都是逻辑运算符，用于在从左至右计算时，返回第一个可完全确定的“逻辑值”。

// 　　或(||)运算符。在形如X||Y的表达式中，首先计算X并将其解释执行为一个布尔值。如果这个布尔值true，那么返回true(1)，
// 不再计算Y，因为“或”的条件已经满足。如果这个布尔值为false，那么我们仍然不能知道X||Y是真是假，直到我们计算Y，
// 并且也把它解释执行为一个布尔值。

// 　　因此，0||1的计算结果为true(1)，同理计算1||2。

// 　　与(&&)运算符。在形如X&&Y的表达式中，首先计算X并将其解释执行为一个布尔值。如果这个布尔值为false，那么返回false(0)，
// 不再计算Y，因为“与”的条件已经失败。如果这个布尔值为true，但是，我们仍然不知道X&&Y是真是假，直到我们去计算Y，
// 并且也把它解释执行为一个布尔值。

// 　　不过，关于&&运算符有趣的地方在于，当一个表达式计算为“true”的时候，那么就返回表达式本身。这很好，虽然它在
// 逻辑表达式方面计算为“真”，但如果你希望的话也可用于返回该值。这就解释了为什么，有些令人奇怪的是，
// 1&&2返回2(而不是你以为的可能返回true或1)。
    </script>
</body>
</html>